COBOL এ টেবিলস বা অ্যারে ব্যবহার করা হয় একাধিক ডেটা উপাদান একত্রে সংরক্ষণ করার জন্য। এই টেবিলগুলো ডেটার একটি সিরিজ বা সেট তৈরি করে, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট ইনডেক্স (অথবা সাবস্ক্রিপ্ট) দ্বারা অ্যাক্সেস করা যায়। COBOL এ টেবিলস (অথবা অ্যারে) খুবই কার্যকরী, বিশেষ করে যখন অনেক ডেটা একসাথে ম্যানেজ বা প্রসেস করার প্রয়োজন হয়।
COBOL এ টেবিল বা অ্যারে সংজ্ঞায়িত করতে OCCURS ক্লজ ব্যবহার করা হয়। টেবিলের প্রতিটি উপাদান একটি ভেরিয়েবল হিসেবে ব্যবহৃত হয়, এবং এর সংখ্যা নির্ধারণ করা যায়।
01 table-name.
05 element-name OCCURS n TIMES.
এখানে:
OCCURS ক্লজ ব্যবহার করে একটি টেবিল সংজ্ঞায়ন করা হয়, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট ডেটা টাইপের হবে। COBOL এ টেবিলের আকার এবং সাইজ কোডে নির্ধারণ করা যায়।
DATA DIVISION.
WORKING-STORAGE SECTION.
01 STUDENT-TABLE.
05 STUDENT-NAME PIC X(20) OCCURS 5 TIMES.
05 STUDENT-AGE PIC 99 OCCURS 5 TIMES.
এখানে:
COBOL এ টেবিলের উপাদানগুলো অ্যাক্সেস করতে SUBSCRIPT বা INDEX ব্যবহার করা হয়। SUBSCRIPT সাধারণত সংখ্যার মাধ্যমে টেবিলের উপাদান অ্যাক্সেস করতে ব্যবহৃত হয়। INDEX কৌশলটি কিছুটা উন্নত এবং এটি সাধারণত আরও কার্যকরী, বিশেষ করে ডাইনামিক অ্যাক্সেসের জন্য।
MOVE 'John' TO STUDENT-NAME (1).
MOVE 20 TO STUDENT-AGE (1).
MOVE 'Sara' TO STUDENT-NAME (2).
MOVE 22 TO STUDENT-AGE (2).
DISPLAY 'Student 1: ' STUDENT-NAME (1) ' Age: ' STUDENT-AGE (1).
DISPLAY 'Student 2: ' STUDENT-NAME (2) ' Age: ' STUDENT-AGE (2).
এখানে, SUBSCRIPT ব্যবহার করে STUDENT-NAME এবং STUDENT-AGE অ্যারে থেকে প্রথম এবং দ্বিতীয় ছাত্রের নাম এবং বয়স পাওয়া যাবে। (1) এবং (2) এখানে ইন্ডেক্স হিসেবে ব্যবহৃত হচ্ছে।
01 INDEXED-STUDENT-TABLE.
05 STUDENT-NAME PIC X(20) OCCURS 5 TIMES INDEXED BY STUDENT-INDEX.
05 STUDENT-AGE PIC 99 OCCURS 5 TIMES INDEXED BY STUDENT-INDEX.
SET STUDENT-INDEX TO 1.
MOVE 'John' TO STUDENT-NAME (STUDENT-INDEX).
MOVE 20 TO STUDENT-AGE (STUDENT-INDEX).
SET STUDENT-INDEX TO 2.
MOVE 'Sara' TO STUDENT-NAME (STUDENT-INDEX).
MOVE 22 TO STUDENT-AGE (STUDENT-INDEX).
DISPLAY 'Student 1: ' STUDENT-NAME (STUDENT-INDEX) ' Age: ' STUDENT-AGE (STUDENT-INDEX).
এখানে INDEXED BY এর মাধ্যমে STUDENT-INDEX নামক ইনডেক্স ভেরিয়েবল তৈরি করা হয়েছে, যা টেবিলের উপাদান অ্যাক্সেস করতে সহায়তা করছে।
COBOL এ টেবিলের মধ্যে তথ্য খুঁজে পেতে SEARCH স্টেটমেন্ট ব্যবহার করা হয়, এবং টেবিলের মানের উপর নির্ভর করে কাউন্টিং বা ট্যালি করতে TALLYING স্টেটমেন্ট ব্যবহার করা হয়।
SEARCH স্টেটমেন্ট একটি টেবিলের মধ্যে মান অনুসন্ধান করতে ব্যবহৃত হয়।
SEARCH STUDENT-NAME
AT END
DISPLAY 'Student not found'
WHEN STUDENT-NAME (STUDENT-INDEX) = 'Sara'
DISPLAY 'Student found: Sara'
END-SEARCH.
এখানে SEARCH স্টেটমেন্ট ব্যবহার করে STUDENT-NAME টেবিলের মধ্যে 'Sara' নামটি খুঁজে বের করা হয়েছে।
TALLYING স্টেটমেন্টটি ব্যবহার করে টেবিলের মানের উপর ভিত্তি করে কাউন্ট করা হয়।
MOVE 0 TO COUNT.
PERFORM VARYING STUDENT-INDEX FROM 1 BY 1 UNTIL STUDENT-INDEX > 5
IF STUDENT-AGE (STUDENT-INDEX) > 21
ADD 1 TO COUNT
END-IF
END-PERFORM.
DISPLAY 'Number of students older than 21: ' COUNT.
এখানে, TALLYING স্টেটমেন্টের মাধ্যমে ২১ বছরের বেশি বয়সী ছাত্রদের সংখ্যা গণনা করা হচ্ছে।
COBOL এ টেবিলস বা অ্যারে ব্যবহৃত হয় একাধিক ডেটা উপাদান সংরক্ষণ এবং ব্যবস্থাপনা করতে। OCCURS ক্লজ ব্যবহার করে টেবিল সংজ্ঞায়িত করা হয়, এবং SUBSCRIPT অথবা INDEX ব্যবহার করে টেবিলের উপাদানগুলো অ্যাক্সেস করা যায়। COBOL এ SEARCH, TALLYING, এবং PERFORM স্টেটমেন্টগুলি ব্যবহার করে টেবিলের তথ্য অনুসন্ধান এবং প্রসেস করা যায়। টেবিল এবং অ্যারে ব্যবহারের মাধ্যমে COBOL প্রোগ্রামে অনেক ডেটা সহজে এবং কার্যকরীভাবে ম্যানেজ করা সম্ভব হয়।
টেবিল (যা COBOL প্রোগ্রামিং ভাষায় Array হিসেবেও পরিচিত) এমন একটি ডেটা স্ট্রাকচার, যা একাধিক ডেটা উপাদানকে একই ধরনের ডেটার মধ্যে সংরক্ষণ করতে ব্যবহৃত হয়। COBOL এ টেবিলগুলো সাধারণত একই ডেটা টাইপের একাধিক মান সংরক্ষণ করতে ব্যবহৃত হয়, এবং প্রতিটি মানকে এককভাবে অ্যাক্সেস করা যায়।
টেবিল সাধারণত Indexing বা Subscript ব্যবহার করে অ্যাক্সেস করা হয়, যেখানে প্রতিটি উপাদান একটি নির্দিষ্ট সূচক বা অবস্থান দ্বারা চিহ্নিত হয়। COBOL ভাষায় টেবিল গঠন এবং ব্যবহারের জন্য কিছু নির্দিষ্ট নিয়ম রয়েছে।
COBOL এ টেবিল বা অ্যারে তৈরি করতে PICTURE বা OCCURS ক্লজ ব্যবহার করা হয়। OCCURS ক্লজের মাধ্যমে একটি ডেটা স্ট্রাকচার বা ভ্যারিয়েবলকে একাধিক উপাদান ধারণ করার জন্য নির্ধারণ করা হয়।
01 table-name.
05 element-name OCCURS n TIMES.
এখানে:
ধরা যাক, আমাদের একটি গ্রেড টেবিল তৈরি করতে হবে যেখানে ৫ জন শিক্ষার্থীর গ্রেড সংরক্ষণ করা হবে। প্রতিটি গ্রেড একটি সন্নিবেশ ভ্যারিয়েবল হিসেবে সংরক্ষিত থাকবে এবং আমরা এই গ্রেডগুলো অ্যাক্সেস করব একটি নির্দিষ্ট সূচক দ্বারা।
DATA DIVISION.
WORKING-STORAGE SECTION.
01 STUDENT-GRADES.
05 GRADE OCCURS 5 TIMES PIC 99.
এখানে:
COBOL এ টেবিলের প্রতিটি উপাদান Subscript বা Index দ্বারা অ্যাক্সেস করা যায়। Subscript সাধারণত 1 থেকে শুরু হয় এবং Index 0 থেকে শুরু হয়। টেবিলের প্রথম উপাদান অ্যাক্সেস করতে আমরা Subscript বা Index হিসেবে 1
ব্যবহার করি।
DISPLAY 'Grade of student 1: ' GRADE(1).
DISPLAY 'Grade of student 2: ' GRADE(2).
এখানে, GRADE(1) প্রথম ছাত্রের গ্রেড, এবং GRADE(2) দ্বিতীয় ছাত্রের গ্রেড প্রদর্শন করবে।
01 STUDENT-GRADES.
05 GRADE PIC 99 OCCURS 5 TIMES INDEXED BY IDX.
এখানে, IDX একটি ইনডেক্স ভ্যারিয়েবল। আপনি IDX ইনডেক্স ব্যবহার করে গ্রেড অ্যাক্সেস করতে পারেন।
COBOL এ একটি টেবিলের উপাদান আপডেট করা, নতুন উপাদান যোগ করা বা একটি উপাদান মুছে ফেলা খুবই সহজ। আপনি SET বা PERFORM স্টেটমেন্টের মাধ্যমে টেবিলের মান পরিবর্তন করতে পারেন।
SET IDX TO 2.
MOVE 95 TO GRADE(IDX).
এখানে, GRADE(IDX) নির্দেশ করে যে, আমরা IDX এর মান অনুযায়ী, GRADE টেবিলের দ্বিতীয় উপাদানকে আপডেট করেছি।
COBOL এ টেবিলের আকার বা পরিসীমা OCCURS ক্লজের মাধ্যমে নির্ধারণ করা হয়। আপনি চাইলে টেবিলের আকার পরিবর্তন করতে পারবেন, যেমন উপাদানের সংখ্যা বাড়ানো বা কমানো।
01 STUDENT-GRADES.
05 GRADE OCCURS 10 TIMES PIC 99.
এখানে, GRADE টেবিলটি ১০টি উপাদান ধারণ করবে।
COBOL এ টেবিল (অথবা অ্যারে) একটি ডেটা স্ট্রাকচার যা একাধিক উপাদান একই ডেটা টাইপের ধারণ করে। টেবিলের ব্যবহার প্রধানত ডেটার সন্নিবেশ, পুনঃব্যবহার এবং প্রক্রিয়াকরণের জন্য হয়ে থাকে। COBOL এ টেবিল তৈরি করতে OCCURS ক্লজ ব্যবহার করা হয়, এবং টেবিলের উপাদানগুলি Subscript বা Index দ্বারা অ্যাক্সেস করা হয়। টেবিলগুলি বিভিন্ন ধরনের ডেটা সন্নিবেশ, আপডেট এবং ম্যানিপুলেশন করতে সহায়ক এবং প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ।
OCCURS
ক্লজ এবং তার ব্যবহারCOBOL-এ OCCURS
ক্লজ একটি শক্তিশালী ফিচার যা একাধিক উপাদান বা ডেটা আইটেমের একটি অ্যারে (array) তৈরি করতে ব্যবহৃত হয়। এটি ডেটা ফাইল বা মেমোরিতে একাধিক বার একটি নির্দিষ্ট ধরনের ডেটা সংরক্ষণ করার জন্য ব্যবহৃত হয়। OCCURS
ক্লজ ব্যবহার করলে, একই ধরনের একাধিক ডেটা আইটেম ঘোষণা করা হয় এবং এগুলি একত্রে ম্যানেজ করা যায়।
01 variable-name.
05 item-name PIC X(10) OCCURS 5 TIMES.
item-name
পাঁচটি বার থাকবে। অর্থাৎ, ৫টি উপাদান ধারণ করতে সক্ষম।COBOL-এ OCCURS
ক্লজ সাধারণত ডেটা মেমরি বা ফাইলের মধ্যে একাধিক উপাদান ধারণ করতে ব্যবহৃত হয়, বিশেষ করে যখন আপনার কাছে সমান ধরনের একাধিক তথ্য থাকে এবং সেগুলি একত্রে ম্যানেজ করা দরকার।
01 NAMES.
05 NAME PIC X(20) OCCURS 3 TIMES.
PROCEDURE DIVISION.
MOVE 'John' TO NAME(1)
MOVE 'Alice' TO NAME(2)
MOVE 'Bob' TO NAME(3)
DISPLAY NAME(1)
DISPLAY NAME(2)
DISPLAY NAME(3)
STOP RUN.
ব্যাখ্যা:
NAMES
একটি রেকর্ড, যার মধ্যে NAME
ফিল্ডটি 3 TIMES ৩টি ভিন্ন নাম ধারণ করবে।NAME(1)
, NAME(2)
, এবং NAME(3)
এ সংরক্ষণ করা হয়।DISPLAY
কমান্ডের মাধ্যমে স্ক্রীনে দেখানো হয়।01 SCORES.
05 SCORE PIC 99 OCCURS 5 TIMES.
PROCEDURE DIVISION.
MOVE 85 TO SCORE(1)
MOVE 90 TO SCORE(2)
MOVE 95 TO SCORE(3)
MOVE 88 TO SCORE(4)
MOVE 92 TO SCORE(5)
DISPLAY 'Scores of the students:'
DISPLAY SCORE(1)
DISPLAY SCORE(2)
DISPLAY SCORE(3)
DISPLAY SCORE(4)
DISPLAY SCORE(5)
STOP RUN.
ব্যাখ্যা:
SCORE
ফিল্ডটি 5 TIMES আছে, যার মানে ৫টি স্কোর একে একে SCORE(1)
, SCORE(2)
, SCORE(3)
, SCORE(4)
, এবং SCORE(5)
নামের ভেরিয়েবলে সংরক্ষণ করা হয়েছে।DISPLAY
কমান্ডের মাধ্যমে এই স্কোরগুলো দেখানো হয়েছে।OCCURS
ক্লজ ব্যবহার করে একই ধরনের একাধিক উপাদানকে একটি ডেটা স্ট্রাকচারে (array) সংরক্ষণ করা যায়, যেমন সংখ্যার তালিকা, নামের তালিকা, অথবা অন্যান্য ডেটার অ্যারে।COBOL-এ OCCURS
ক্লজের সাথে আপনি একটি সাইজও নির্দিষ্ট করতে পারেন যা চলতি প্রোগ্রামিংয়ের সময় পরিবর্তনশীল হতে পারে, যেমন:
01 STUDENT-NAMES.
05 NAME PIC X(20) OCCURS 100 TIMES.
OCCURS
ক্লজের মাধ্যমে ডেটা আইটেমগুলো ইন্ডেক্স ব্যবহার করে অ্যাক্সেস করা যায়। উদাহরণস্বরূপ:
MOVE 'John' TO NAME(1)
MOVE 'Alice' TO NAME(2)
OCCURS
ক্লজের সাথে আইটেমের সংখ্যা সীমিত করা যেতে পারে। তবে, আধুনিক COBOL ভার্সনগুলিতে এটি আরও ডায়নামিকভাবে পরিবর্তনযোগ্য হতে পারে।OCCURS
এর সাথে INDEXED
এবং SUBSCRIPT
:INDEXED
এবং SUBSCRIPT
এই দুটি ধারণা OCCURS
ক্লজের সঙ্গে ব্যবহার করা যেতে পারে। SUBSCRIPT
বা INDEX
ব্যবহার করে অ্যারে বা তালিকা থেকে নির্দিষ্ট উপাদান নির্বাচন করা হয়।INDEX
ব্যবহার:01 STUDENT-SCORES.
05 SCORE PIC 99 OCCURS 5 TIMES INDEXED BY IDX.
PROCEDURE DIVISION.
SET IDX TO 1
PERFORM UNTIL IDX > 5
MOVE IDX TO SCORE(IDX)
DISPLAY SCORE(IDX)
ADD 1 TO IDX
END-PERFORM.
STOP RUN.
ব্যাখ্যা:
SCORE
অ্যারের জন্য INDEXED BY IDX
ব্যবহার করা হয়েছে, যাতে IDX
ইন্ডেক্সটি ব্যবহার করে অ্যারের উপাদানগুলিকে অ্যাক্সেস করা যায়।COBOL-এ OCCURS
ক্লজ একটি শক্তিশালী টুল যা একাধিক উপাদান সংরক্ষণ করার জন্য ব্যবহৃত হয়। এটি ডেটা ম্যানিপুলেশনকে সহজ এবং কার্যকর করে, বিশেষ করে যখন একাধিক সমান ধরনের ডেটা থাকতে হয়। OCCURS
ক্লজের সাথে INDEX
বা SUBSCRIPT
ব্যবহার করে আরও উন্নতভাবে অ্যারে বা ডেটা স্ট্রাকচার ম্যানেজ করা সম্ভব।
Multidimensional Tables (বা Arrays) হল এমন ডেটা স্ট্রাকচার যা একাধিক ডাইমেনশন বা মাত্রায় ডেটা ধারণ করতে সক্ষম। COBOL-এ, multidimensional tables বা অ্যারেগুলি একটি সুনির্দিষ্ট আকারের টেবিল হিসাবে ডেটা সংরক্ষণ করতে ব্যবহৃত হয়, যেখানে প্রতিটি উপাদান একাধিক সূচক দ্বারা চিহ্নিত হয়। এটি বিভিন্ন ক্ষেত্রের জন্য ডেটা সংগ্রহ, প্রক্রিয়াকরণ এবং বিশ্লেষণ সহজ করে তোলে।
COBOL-এ মাল্টিডাইমেনশনাল টেবিল সাধারণত ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয়, যেমন ম্যাট্রিক্স, ডেটা বিশ্লেষণ, স্টোরেজ মডেল, ইত্যাদি ক্ষেত্রে। নিচে multidimensional tables এর ব্যবহার এবং কিভাবে COBOL-এ এগুলি ব্যবহার করা হয় তার বিস্তারিত আলোচনা করা হল।
COBOL-এ একটি মাল্টিডাইমেনশনাল টেবিল ডিফাইন করতে, আপনাকে OCCURS ক্লজ ব্যবহার করতে হবে, যা টেবিলের সাইজ এবং ডাইমেনশন নির্ধারণ করে। COBOL সাধারণত ১ বা ২ মাত্রার অ্যারে সাপোর্ট করে, তবে আপনি আরও বেশি মাত্রার অ্যারেও কাজ করতে পারেন।
01 EMPLOYEE-NAMES.
05 EMP-NAME OCCURS 10 TIMES PIC X(20).
এখানে, EMPLOYEE-NAMES একটি একমাত্রার অ্যারে, যার মধ্যে ১০টি নাম (20 অক্ষর প্রতিটি) থাকতে পারে।
01 MATRIX.
05 ROW OCCURS 3 TIMES.
10 COLUMN OCCURS 4 TIMES PIC 9(3).
এখানে, MATRIX একটি দ্বিমাত্রিক টেবিল যা ৩টি সারি এবং প্রতি সারিতে ৪টি কলাম ধারণ করতে সক্ষম।
01 GRID.
05 LAYER OCCURS 2 TIMES.
10 ROW OCCURS 3 TIMES.
15 COLUMN OCCURS 4 TIMES PIC 9(3).
এখানে, GRID একটি তিন মাত্রার অ্যারে যা ২টি স্তর (Layer), প্রতিটি স্তরে ৩টি সারি (Row) এবং প্রতিটি সারিতে ৪টি কলাম (Column) ধারণ করে।
COBOL-এ multidimensional tables এ ডেটা অ্যাক্সেস করার জন্য আপনি INDEX বা SUBSCRIPT ব্যবহার করতে পারেন।
SUBSCRIPT ব্যবহার করলে আপনি একটি নির্দিষ্ট অ্যারে উপাদান বা সেলের মান অ্যাক্সেস করতে পারেন।
SET ROW-SUBSCRIPT TO 2
SET COL-SUBSCRIPT TO 3
DISPLAY MATRIX (ROW-SUBSCRIPT, COL-SUBSCRIPT)
এখানে, ROW-SUBSCRIPT এবং COL-SUBSCRIPT অ্যারে উপাদান (সেলের) অবস্থান নির্ধারণ করতে সাহায্য করবে এবং আপনি সেই সেলের মান প্রদর্শন করতে পারবেন।
INDEX ব্যবহার করা হয় যখন আপনি টেবিলের নির্দিষ্ট স্থানে সরাসরি অ্যাক্সেস করতে চান, এটি সাধারণত বড় অ্যারে গুলির জন্য দ্রুততর।
SET ROW-INDEX TO 2
SET COL-INDEX TO 3
DISPLAY MATRIX (ROW-INDEX, COL-INDEX)
এখানে, ROW-INDEX এবং COL-INDEX দ্বারা টেবিলের নির্দিষ্ট উপাদান অ্যাক্সেস করা হবে।
মাল্টিডাইমেনশনাল টেবিলগুলো বিভিন্ন পরিস্থিতিতে ব্যবহৃত হতে পারে। কিছু সাধারণ উদাহরণ নিচে দেওয়া হলো:
ম্যাট্রিক্সের উপর গণনা বা বিশ্লেষণ করতে মাল্টিডাইমেনশনাল অ্যারে ব্যবহার করা যেতে পারে, যেমন মেট্রিক্স মাল্টিপ্লিকেশন বা অন্যান্য ম্যাথমেটিক্যাল অপারেশন।
PERFORM VARYING i FROM 1 BY 1 UNTIL i > 3
PERFORM VARYING j FROM 1 BY 1 UNTIL j > 4
ADD MATRIX(i,j) TO SUM
END-PERFORM
END-PERFORM
DISPLAY "Total Sum: " SUM
এখানে, MATRIX(i, j) এর মধ্যে সারি এবং কলামের মান যোগ করা হচ্ছে।
বিভিন্ন ডেটার উপর বিশ্লেষণ করার জন্য, মাল্টিডাইমেনশনাল টেবিল ব্যবহার করা যায়, যেমন শিক্ষার্থীদের ফলাফল, বিক্রয় ডেটা, স্টক প্রাইস ইত্যাদি।
01 STUDENT-SCORES.
05 SCORES OCCURS 5 TIMES.
10 SUBJECTS OCCURS 3 TIMES PIC 99.
PERFORM VARYING i FROM 1 BY 1 UNTIL i > 5
PERFORM VARYING j FROM 1 BY 1 UNTIL j > 3
ADD SCORES (i, j) TO TOTAL-SCORE
END-PERFORM
END-PERFORM
DISPLAY "Total Score: " TOTAL-SCORE
এখানে, STUDENT-SCORES একটি ৫x৩ টেবিল যা ৫টি শিক্ষার্থীর জন্য ৩টি বিষয় অনুযায়ী স্কোর ধারণ করে।
মাল্টিডাইমেনশনাল টেবিলগুলি ইনভেন্টরি ম্যানেজমেন্টে ব্যবহার করা যেতে পারে, যেখানে বিভিন্ন পণ্য, তাদের স্টক সংখ্যা এবং মূল্য থাকে।
01 INVENTORY.
05 PRODUCT OCCURS 3 TIMES.
10 STOCK OCCURS 2 TIMES PIC 9(3).
10 PRICE OCCURS 2 TIMES PIC 9(5)V99.
PERFORM VARYING i FROM 1 BY 1 UNTIL i > 3
PERFORM VARYING j FROM 1 BY 1 UNTIL j > 2
DISPLAY "Product " i " , Stock " j ": " STOCK(i,j) " , Price: " PRICE(i,j)
END-PERFORM
END-PERFORM
এখানে, PRODUCT একটি মাল্টিডাইমেনশনাল টেবিল যা পণ্যের স্টক এবং মূল্য ধারণ করে।
COBOL-এ Multidimensional Tables বা অ্যারে ব্যবহার করার মাধ্যমে আপনি একাধিক মাত্রায় ডেটা সংরক্ষণ এবং প্রক্রিয়া করতে পারেন। এটি MATRIX, ডেটা বিশ্লেষণ, ইনভেন্টরি ম্যানেজমেন্ট সহ বিভিন্ন কাজে ব্যবহৃত হতে পারে। মাল্টিডাইমেনশনাল টেবিলগুলি আপনার প্রোগ্রামকে আরও দক্ষ এবং পরিষ্কার করে তোলে, এবং SUBSCRIPT বা INDEX ব্যবহার করে আপনি সহজেই বিভিন্ন ডেটা উপাদানে অ্যাক্সেস করতে পারবেন।
COBOL ভাষায় টেবিল প্রক্রিয়াকরণ এবং সাবস্ক্রিপশন ব্যবস্থাপনা একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, বিশেষত যখন আমরা অনেকগুলো ডেটা রেকর্ড পরিচালনা করি এবং তাদের মধ্যে সম্পর্ক তৈরি করতে চাই। টেবিল প্রক্রিয়াকরণ সাধারণত ARRAY বা TABLE হিসেবে পরিচিত, যেখানে একাধিক মান সংরক্ষণ করা হয় এবং তাদের ওপর বিভিন্ন অপারেশন করা হয়।
সাবস্ক্রিপশন (Subscription) শব্দটি সাধারণত ডেটা প্রক্রিয়াকরণের সময় ব্যবহারকারীর বিভিন্ন পছন্দের বা অ্যাকাউন্ট সম্পর্কিত তথ্য পরিচালনা করতে ব্যবহৃত হয়। COBOL-এ টেবিল প্রক্রিয়াকরণের সাথে সাবস্ক্রিপশন ব্যবস্থাপনা করতে পারলে, এটি বিভিন্ন পরিষেবা বা ডেটা সিস্টেমে আরও কার্যকরীভাবে কাজ করতে সাহায্য করে।
COBOL-এ টেবিল প্রক্রিয়াকরণ বা ARRAY প্রক্রিয়াকরণ অনেকটি ডেটা একত্রিতভাবে সংরক্ষণ এবং তাদের ওপর অপারেশন করতে ব্যবহৃত হয়। COBOL-এ টেবিল ডিফাইন করার জন্য TABLE বা OCCURS ক্লজ ব্যবহার করা হয়।
IDENTIFICATION DIVISION.
PROGRAM-ID. TableProcessingExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMPLOYEE-TABLE.
05 EMPLOYEE-ENTRY OCCURS 5 TIMES.
10 EMPLOYEE-ID PIC 9(4).
10 EMPLOYEE-NAME PIC X(30).
10 EMPLOYEE-SALARY PIC 9(5)V99.
PROCEDURE DIVISION.
MOVE 1001 TO EMPLOYEE-ID (1)
MOVE 'John Doe' TO EMPLOYEE-NAME (1)
MOVE 50000.00 TO EMPLOYEE-SALARY (1)
MOVE 1002 TO EMPLOYEE-ID (2)
MOVE 'Jane Smith' TO EMPLOYEE-NAME (2)
MOVE 55000.00 TO EMPLOYEE-SALARY (2)
MOVE 1003 TO EMPLOYEE-ID (3)
MOVE 'James Bond' TO EMPLOYEE-NAME (3)
MOVE 60000.00 TO EMPLOYEE-SALARY (3)
PERFORM DISPLAY-EMPLOYEES
STOP RUN.
DISPLAY-EMPLOYEES.
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
DISPLAY 'Employee ID: ' EMPLOYEE-ID (I)
DISPLAY 'Employee Name: ' EMPLOYEE-NAME (I)
DISPLAY 'Employee Salary: ' EMPLOYEE-SALARY (I)
END-PERFORM.
ব্যাখ্যা:
COBOL-এ সাবস্ক্রিপশন ব্যবস্থাপনা করতে হলে, সাধারণত কোনো ব্যবহারকারীর তথ্য বা সাবস্ক্রিপশন সম্পর্কিত ডেটা পরিচালনা করা হয়। উদাহরণস্বরূপ, একাধিক গ্রাহক বা ব্যবহারকারীর জন্য সেবা, তাদের সাবস্ক্রিপশন প্যাকেজ, পরিমাণ, পেমেন্ট স্টেটাস ইত্যাদি ব্যবস্থাপনা করা যেতে পারে। এটা ডেটার উপর বিভিন্ন শর্ত প্রয়োগ করতে সাহায্য করে, যেমন অ্যাকাউন্ট ক্রিয়েশন, বিলিং, বা সাবস্ক্রিপশন রিনিউয়াল।
IDENTIFICATION DIVISION.
PROGRAM-ID. SubscriptionManagementExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CUSTOMER-TABLE.
05 CUSTOMER-ENTRY OCCURS 3 TIMES.
10 CUSTOMER-ID PIC 9(4).
10 CUSTOMER-NAME PIC X(30).
10 SUBSCRIPTION-TYPE PIC X(10).
10 SUBSCRIPTION-STATUS PIC X(10).
PROCEDURE DIVISION.
MOVE 1001 TO CUSTOMER-ID (1)
MOVE 'Alice Brown' TO CUSTOMER-NAME (1)
MOVE 'Premium' TO SUBSCRIPTION-TYPE (1)
MOVE 'Active' TO SUBSCRIPTION-STATUS (1)
MOVE 1002 TO CUSTOMER-ID (2)
MOVE 'Bob Green' TO CUSTOMER-NAME (2)
MOVE 'Basic' TO SUBSCRIPTION-TYPE (2)
MOVE 'Expired' TO SUBSCRIPTION-STATUS (2)
MOVE 1003 TO CUSTOMER-ID (3)
MOVE 'Charlie White' TO CUSTOMER-NAME (3)
MOVE 'Premium' TO SUBSCRIPTION-TYPE (3)
MOVE 'Active' TO SUBSCRIPTION-STATUS (3)
PERFORM DISPLAY-CUSTOMERS
STOP RUN.
DISPLAY-CUSTOMERS.
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
DISPLAY 'Customer ID: ' CUSTOMER-ID (I)
DISPLAY 'Customer Name: ' CUSTOMER-NAME (I)
DISPLAY 'Subscription Type: ' SUBSCRIPTION-TYPE (I)
DISPLAY 'Subscription Status: ' SUBSCRIPTION-STATUS (I)
END-PERFORM.
ব্যাখ্যা:
COBOL-এ টেবিল প্রক্রিয়াকরণ এবং সাবস্ক্রিপশন ব্যবস্থাপনা ডেটা পরিচালনা করতে খুবই কার্যকরী। OCCURS ক্লজের মাধ্যমে একাধিক ডেটা আইটেম সন্নিবেশ করা সম্ভব এবং তাদের ওপর বিভিন্ন অপারেশন (যেমন যোগফল, গুণফল, বা তথ্য প্রদর্শন) করা যেতে পারে। SUBSCRIPTION ব্যবস্থাপনা ক্ষেত্রেও একইভাবে টেবিল ব্যবহার করে বিভিন্ন ডেটা এবং শর্তাবলী পরিচালনা করা যায়। COBOL-এ টেবিল প্রক্রিয়াকরণ ডেটাবেস ম্যানেজমেন্ট এবং ব্যবসায়িক অ্যাপ্লিকেশনে ব্যবহারিকভাবে খুবই উপকারী।
common.read_more